package com.micro.ai.template.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.micro.ai.template.entity.TemplateShare;

/**
 * 模板分享Service
 *
 * @author micro-ai
 * @since 0.0.1
 */
public interface TemplateShareService extends IService<TemplateShare> {

    /**
     * 创建分享链接
     *
     * @param templateShare 分享信息
     * @return 分享记录
     */
    TemplateShare createShare(TemplateShare templateShare);

    /**
     * 通过分享码获取分享信息
     *
     * @param shareCode 分享码
     * @return 分享信息
     */
    TemplateShare getShareByCode(String shareCode);

    /**
     * 撤销分享
     *
     * @param shareId 分享ID
     * @param userId 用户ID
     */
    void revokeShare(String shareId, String userId);

    /**
     * 获取用户的分享列表
     *
     * @param userId 用户ID
     * @param page 分页参数
     * @return 分享列表
     */
    IPage<TemplateShare> getUserShares(String userId, Page<TemplateShare> page);

    /**
     * 更新分享访问次数
     *
     * @param shareId 分享ID
     */
    void incrementAccessCount(String shareId);

    /**
     * 检查分享是否有效
     *
     * @param shareCode 分享码
     * @return 是否有效
     */
    boolean isShareValid(String shareCode);
}

